home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Bits and Bytes Volume 11, No. 05 (1989-11)(Apple Computing Enjoyment Society)(Side B).zip / Bits and Bytes Volume 11, No. 05 (1989-11)(Apple Computing Enjoyment Society)(Side B).po / PROGRAMS / BILL.ORGANIZER.bas next >
BASIC Source File  |  1996-12-24  |  15KB  |  392 lines

  1. 900  ONERR  GOTO 8000
  2. 1000  GOSUB 10000
  3. 1010  PRINT : PRINT D$;"PR#3"
  4. 1020  PRINT W4$;
  5. 1025  GOSUB 16000
  6. 1030  GOSUB 11000
  7. 1033 EN = 0
  8. 1036  VTAB 3: HTAB 3: PRINT "RECORD ";RECRD; SPC( 5)
  9. 1040  FOR X1 = 1 TO LF%
  10. 1050 FIELD% = X1: GOSUB 23500
  11. 1060  NEXT X1
  12. 1063  GOSUB 18000
  13. 1065  IF EN < >5  THEN  GOSUB 19000: GOTO 1110
  14. 1070  FOR X1 = 1 TO 5
  15. 1080 FIELD% = X1
  16. 1090  GOSUB 23000: GOSUB 12000: GOSUB 23500
  17. 1100  NEXT X1
  18. 1110 FIELD% = 5: GOSUB 23000
  19. 1120  GOSUB 22000
  20. 1130  IF FIELD% = 5  THEN  GOSUB 17000: GOSUB 13600:FR% = 3:LR% = 8: GOSUB 30100: GOSUB 23500: GOTO 1033
  21. 1135  IF FIELD% = 6  THEN  GOTO 24029
  22. 1136  IF FIELD% = 7  THEN 1160
  23. 1140  IF FIELD% <LF%  THEN  GOSUB 12000: GOTO 1120
  24. 1150  REM  
  25. 1151  REM   ***QUIT***
  26. 1152  REM  
  27. 1160 T% = 14:L% = 4:B% = 17:R% = 37: GOSUB 30200
  28. 1170  VTAB 15: HTAB 4: PRINT BEEP$;" Are you sure you want to QUIT? ";
  29. 1180  VTAB 16: HTAB 8:C$ = "Y": GOSUB 21000
  30. 1190  IF NTRY$ = "NO"  THEN FR% = 14:LR% = 17: GOSUB 30100: GOSUB 23000: GOTO 1120
  31. 1200  GOSUB 17000
  32. 1210  PRINT D$;"CLOSE"
  33. 1220  HOME : END 
  34. 7989  REM  
  35. 7990  REM   ***ERROR HANDLER***
  36. 7991  REM  
  37. 8000 EN =  PEEK(222)
  38. 8010 EL =  PEEK(219) *256 + PEEK(218)
  39. 8020  IF EN = 2  THEN EN = 5
  40. 8030  IF EN = 5  THEN  RESUME 
  41. 8035  IF EN = 254  THEN  RESUME 
  42. 8040  PRINT BEEP$;BEEP$;
  43. 8050 FR% = 10:LR% = 14: GOSUB 30100
  44. 8060 T% = 10:L% = 4:B% = 14:R% = 37: GOSUB 30200
  45. 8070  VTAB 11
  46. 8080  ON EN GOTO 8100,8100,8500,8200,8100,8400,8400,8500,8600,8700
  47. 8100  HTAB 5: PRINT "Unexpected error (code ";EN;")"
  48. 8105  HTAB 5: PRINT "On line number ";EL
  49. 8120  HTAB 5: PRINT "Press RETURN to quit. ";
  50. 8130  GOSUB 30000
  51. 8140  IF C$ < > CHR$(13)  THEN 8130
  52. 8150  GOTO 1210
  53. 8200  HTAB 5: PRINT "Disk is write-protected."
  54. 8210  HTAB 5: PRINT "Remove tab or use another disk."
  55. 8220  GOTO 8120
  56. 8400  HTAB 5: PRINT "Volume not found."
  57. 8410  HTAB 5: PRINT "Check prefix and drive."
  58. 8420  GOTO 8120
  59. 8500  HTAB 5: PRINT "Disk or drive error."
  60. 8510  HTAB 5: PRINT "Check disk, drive, and prefix."
  61. 8520  GOTO 8120
  62. 8600  HTAB 5: PRINT "Disk full."
  63. 8610  HTAB 5: PRINT "Last few records may be missing."
  64. 8620  GOTO 8120
  65. 8700  HTAB : PRINT "File ";FILE$;" Locked."
  66. 8710  PRINT : GOTO 8120
  67. 9989  REM  
  68. 9990  REM   ***INITIALIZE VARIBLES***
  69. 9991  REM  
  70. 10000 MT$ =  CHR$(15) + CHR$(27)
  71. 10010 RT$ =  CHR$(24) + CHR$(14)
  72. 10020 D$ =  CHR$(4)
  73. 10030 W4$ =  CHR$(17)
  74. 10040 BEEP$ =  CHR$(7)
  75. 10050  FOR X1 = 1 TO 40
  76. 10060 EF$ = EF$ +"I"
  77. 10070 TL$ = TL$ +"L"
  78. 10080 BL$ = BL$ +"_"
  79. 10090 TBAR$ = TBAR$ +"/"
  80. 10100  NEXT X1
  81. 10110 LF% = 10
  82. 10120  DIM FR%(2,LF%),FC%(2,LF%),FD$(2,LF%)
  83. 10130  FOR X1 = 1 TO LF%
  84. 10140  READ FR%(1,X1),FC%(1,X1),FD$(1,X1)
  85. 10150  READ FR%(2,X1),FC%(2,X1),FD$(2,X1)
  86. 10160  NEXT X1
  87. 10170 FILE$ = "BILLS"
  88. 10180 RECRD = 1
  89. 10190  DIM DD(12)
  90. 10200  FOR X1 = 1 TO 12: READ DD(X1): NEXT 
  91. 10210  RETURN 
  92. 10489  REM  
  93. 10490  REM   ***FIELD DESCRIPTIONS AND LOCATIONS***
  94. 10491  REM  
  95. 10500  DATA     4,3,"1. <TITLE OF FIRM:>"
  96. 10510  DATA     4,3,"1.  Title of firm: "
  97. 10520  DATA     5,3,"2. <AMOUNT DUE:>   "
  98. 10530  DATA     5,3,"2.  Amount due:    "
  99. 10540  DATA     6,3,"3. <DATE DUE:>     "
  100. 10550  DATA      6,3,"3.  Date due:      "
  101. 10560  DATA       7,3,"4. <PAY PERIOD?:>"
  102. 10570  DATA   7,3,"4.  Pay period?: "
  103. 10600  DATA    11,3,"5. <ANOTHER RECORD?>"
  104. 10610  DATA    11,3,"5.  Another record? "
  105. 10620  DATA     12,3,"6. <LIST>"
  106. 10630  DATA     12,3,"6.  List "
  107. 10640  DATA   13,3,"7. <QUIT>"
  108. 10650  DATA   13,3,"7.  Quit "
  109. 10660  DATA      7,25,"1ST CHECK"
  110. 10670  DATA      7,25,"1st check"
  111. 10689  DATA      8,25,"2ND CHECK"
  112. 10690  DATA      8,25,"2nd check"
  113. 10700  DATA     9,25,"HOLD"
  114. 10710  DATA     9,25,"hold"
  115. 10720  DATA    31,29,31,30,31,30,31,31,30,31,30,31
  116. 10989  REM  
  117. 10990  REM   ***DISPLAY ENTRY WINDOW***
  118. 10991  REM  
  119. 11000  HOME 
  120. 11010 T% = 2:L% = 2:B% = 22:R% = 39: GOSUB 30200
  121. 11020  VTAB 1: HTAB 1:L% = 38:TITLE$ = "Bill Organizer": GOSUB 30300
  122. 11030  RETURN 
  123. 11989  REM  
  124. 11990  REM   ***ENTER FIELD***
  125. 11991  REM  
  126. 12000  VTAB 20: HTAB 3: PRINT "Enter the selected field."
  127. 12010  HTAB 3: PRINT "Then press RETURN to confirm entry.";
  128. 12020  ON FIELD% GOSUB 13100,13200,13300,13400
  129. 12030 FR% = 19:LR% = 21: GOSUB 30100
  130. 12040 CHANGED = 1
  131. 12050  RETURN 
  132. 13089  REM  
  133. 13090  REM   ***ENTER NAME OF FIRM***
  134. 13100 ML% = 11: VTAB 4: HTAB 23: GOSUB 20000
  135. 13110 FRM$ = NTRY$: RETURN 
  136. 13189  REM  
  137. 13190  REM   ***ENTER AMOUNT DUE***
  138. 13200 ML% = 7: VTAB 5: HTAB 23: GOSUB 20000
  139. 13210 AMT$ = NTRY$
  140. 13220  GOTO 32000
  141. 13289  REM  
  142. 13290  REM   ***ENTER DATE DUE***
  143. 13300 ML% = 6: VTAB 6: HTAB 23
  144. 13301 HT% =  PEEK(36) +1:NTRY$ = "":P1$ = "I":P2$ = "II"
  145. 13302 CL% =  LEN(NTRY$): HTAB HT%
  146. 13303  IF CL% = 0  THEN  PRINT NTRY$;MT$;P2$;RT$;"/";MT$;P2$;RT$;"/";MT$;P2$;RT$;: HTAB HT%: GOSUB 30000: GOTO 13310
  147. 13304  IF CL% = 1  THEN  PRINT NTRY$;MT$;P1$;RT$;"/";MT$;P2$;RT$;"/";MT$;P2$;RT$;: HTAB HT% +1: GOSUB 30000: GOTO 13310
  148. 13305  IF CL% = 2  THEN  PRINT NTRY$;"/";MT$;P2$;RT$;"/";MT$;P2$;RT$;: HTAB HT% +3: GOSUB 30000: GOTO 13310
  149. 13306  IF CL% = 3  THEN  PRINT  LEFT$(NTRY$,2);RT$;"/"; RIGHT$(NTRY$,1);MT$;P1$;RT$;"/";MT$;P2$;RT$;: HTAB HT% +4: GOSUB 30000: GOTO 13310
  150. 13307  IF CL% = 4  THEN  PRINT  LEFT$(NTRY$,2);RT$;"/"; RIGHT$(NTRY$,2);RT$;"/";MT$;P2$;RT$;: HTAB HT% +6: GOSUB 30000: GOTO 13310
  151. 13308  IF CL% = 5  THEN  PRINT  LEFT$(NTRY$,2);RT$;"/"; MID$ (NTRY$,3,2);RT$;"/"; RIGHT$(NTRY$,1);MT$;P1$;RT$;: HTAB HT% +7: GOSUB 30000: GOTO 13310
  152. 13309  IF CL% = 6  THEN  PRINT  LEFT$(NTRY$,2);RT$;"/"; MID$ (NTRY$,3,2);RT$;"/"; RIGHT$(NTRY$,2);: HTAB HT% +8: GOSUB 30000: GOTO 13310
  153. 13310  IF C$ =  CHR$(8)  AND CL% < = 1  THEN NTRY$ = "": GOTO 13302
  154. 13311  IF C$ =  CHR$(8)  THEN NTRY$ =  LEFT$(NTRY$,CL% -1): GOTO 13302
  155. 13312  IF C$ =  CHR$(127)  THEN NTRY$ = "": GOTO 13302
  156. 13313  IF C$ =  CHR$(13)  THEN  PRINT  SPC( ML% -CL%);: GOTO 13319
  157. 13314  IF C$ > = " "  AND CL% <ML%  THEN NTRY$ = NTRY$ +C$
  158. 13315  GOTO 13302
  159. 13319 DTE$ = NTRY$: IF NTRY$ = ""  THEN  HTAB HT%: PRINT "        ": RETURN 
  160. 13320 MM =  VAL( LEFT$(DTE$,2))
  161. 13330  IF MM <1  OR MM >12  THEN 13300
  162. 13340 DD =  VAL( MID$ (DTE$,3,2))
  163. 13350  IF DD <1  OR DD >DD(MM)  THEN 13300
  164. 13360 YY =  VAL( RIGHT$(DTE$,2))
  165. 13370  IF YY <0  OR YY >99  THEN 13300
  166. 13380 MM$ =  STR$(MM): IF  LEN(MM$) = 1  THEN MM$ = "0" +MM$
  167. 13381 DD$ =  STR$(DD): IF  LEN(DD$) = 1  THEN DD$ = "0" +DD$
  168. 13390  RETURN 
  169. 13395  REM  
  170. 13396  REM    ***ENTER 1ST/2ND CHECK***
  171. 13400  VTAB 19: HTAB 3: PRINT "Press ";MT$;"J";RT$;" or ";MT$;"K";RT$;" to select a type."
  172. 13401  VTAB 20: HTAB 3: PRINT "Then press RETURN to confirm entry";
  173. 13402  VTAB 21: HTAB 3: PRINT  SPC( 35)
  174. 13403 FIELD% = 8: GOSUB 23000
  175. 13405  GOSUB 30000
  176. 13410  IF C$ =  CHR$(10)  THEN  GOSUB 23500:FIELD% = FIELD% +1
  177. 13411  IF FIELD% >10  THEN FIELD% = 8
  178. 13412  GOSUB 23000
  179. 13420  IF C$ =  CHR$(11)  THEN  GOSUB 23500:FIELD% = FIELD% -1
  180. 13421  IF FIELD% <8  THEN FIELD% = 10
  181. 13422  GOSUB 23000
  182. 13450  IF C$ < > CHR$(13)  THEN 13405
  183. 13459 SE$ =  STR$(FIELD% -7)
  184. 13460  IF SE$ = "3"  THEN SE$ = "H"
  185. 13461  GOSUB 23500
  186. 13462 FIELD% = 4: GOSUB 23500
  187. 13465 FIELD% = 5: GOSUB 23000
  188. 13466  VTAB 7: HTAB 23: PRINT SE$
  189. 13470  RETURN 
  190. 13589  REM  
  191. 13590  REM   ***GET RECORD NUMBER***
  192. 13600 T% = 12:L% = 4:B% = 16:R% = 37: GOSUB 30200
  193. 13605  VTAB 13: HTAB 4: PRINT " WHAT RECORD NUMBER? ";
  194. 13606  VTAB 14: HTAB 5: PRINT "ENTER <S> FOR SEARCH."
  195. 13615 ML% = 3: VTAB 13: HTAB 25: GOSUB 20000
  196. 13616  IF NTRY$ = "S"  OR NTRY$ = ""  THEN  GOSUB 40000
  197. 13620 RECRD =  VAL(NTRY$)
  198. 13625  IF RECRD <0  THEN  PRINT BEEP$;: GOTO 13605
  199. 13630 FR% = 12:LR% = 16: GOSUB 30100
  200. 13640  RETURN 
  201. 15989  REM  
  202. 15990  REM   ***DISPLAY WELCOME AND SET UP DISK***
  203. 16000  HOME 
  204. 16010  VTAB 4: HTAB 5: PRINT MT$; LEFT$(TL$,31);RT$
  205. 16020  HTAB 6: PRINT "WELCOME TO BILL ORGANIZER"
  206. 16030  VTAB 10: HTAB 16: PRINT MT$;"SSS@SSU";RT$
  207. 16040  VTAB 16: HTAB 12: PRINT "ARCHER PROGRAMS"
  208. 16050  HTAB 5: PRINT  LEFT$(BL$,31)
  209. 16060  PRINT D$;"OPEN";FILE$;",L45"
  210. 16070  FOR DE = 1 TO 500: NEXT DE
  211. 16080  RETURN 
  212. 16989  REM  
  213. 16990  REM   ***WRITE RECORD***
  214. 16991  REM  
  215. 17000  IF   NOT CHANGED  THEN  RETURN 
  216. 17010  VTAB 21: HTAB 3: PRINT "Saving to disk....";
  217. 17020  PRINT : PRINT D$;"WRITE";FILE$;",R";RECRD
  218. 17030  PRINT FRM$
  219. 17040  PRINT AMT$
  220. 17050  PRINT DTE$
  221. 17060  PRINT SE$
  222. 17080  PRINT D$
  223. 17090 FR% = 21:LR% = 21: GOSUB 30100
  224. 17100  RETURN 
  225. 17989  REM  
  226. 17990  REM   ***READ RECORD***
  227. 17991  REM  
  228. 18000  VTAB 21: HTAB 3: PRINT "Read record ";RECRD;" from disk....";
  229. 18010  PRINT : IF EN < >5  THEN  PRINT D$;"READ";FILE$;",R";RECRD
  230. 18020  VTAB 23: HTAB 39
  231. 18030  IF EN < >5  THEN  INPUT "";FRM$,AMT$,DTE$,SE$
  232. 18040  PRINT D$
  233. 18050  IF FRM$ = ""  THEN EN = 5
  234. 18060 FR% = 21:LR% = 21: GOSUB 30100
  235. 18070  IF EN = 5  THEN  VTAB 19: HTAB 3: PRINT "New Record."
  236. 18080 CHANGED = 0
  237. 18090  RETURN 
  238. 18989  REM  
  239. 18990  REM   ***DISPLAY RECORD***
  240. 18991  REM  
  241. 19000  VTAB 4: HTAB 23: PRINT FRM$
  242. 19010  VTAB 5: HTAB 23: PRINT AMT$
  243. 19015  IF DTE$ = ""  THEN 19030
  244. 19020  VTAB 6: HTAB 23: PRINT  LEFT$(DTE$,2);"/"; MID$ (DTE$,3,2);"/"; RIGHT$(DTE$,2)
  245. 19030  VTAB 7: HTAB 23: PRINT SE$
  246. 19050  RETURN 
  247. 19989  REM  
  248. 19990  REM   ***GET ENTRY***
  249. 19991  REM  
  250. 20000 HT% =  PEEK(36) +1
  251. 20010 NTRY$ = ""
  252. 20020 CL% =  LEN(NTRY$)
  253. 20030  HTAB HT%: PRINT NTRY$;
  254. 20040  IF ML% >CL%  THEN  PRINT MT$; LEFT$(EF$,ML% -CL%);RT$;
  255. 20050  HTAB HT% +CL%: GOSUB 30000
  256. 20060  IF C$ =  CHR$(8)  AND CL% < = 1  THEN 20010
  257. 20070  IF C$ =  CHR$(8)  THEN NTRY$ =  LEFT$(NTRY$,CL% -1): GOTO 20020
  258. 20080  IF C$ =  CHR$(127)  THEN 20010
  259. 20090  IF C$ =  CHR$(13)  THEN  PRINT  SPC( ML% -CL%);: RETURN 
  260. 20100  IF C$ > = " "  AND CL% <ML%  THEN NTRY$ = NTRY$ +C$
  261. 20110  GOTO 20020
  262. 21000 HT% =  PEEK(36) +1:VT% =  PEEK(37) +1
  263. 21010  IF C$ = "Y"  OR C$ = "y"  OR (C$ =  CHR$(8)  AND NTRY$ = "NO")  THEN  VTAB VT%: HTAB HT%: PRINT "<YES> No";:NTRY$ = "YES"
  264. 21020  IF C$ = "N"  OR C$ = "n"  OR (C$ =  CHR$(21)  AND NTRY$ = "YES")  THEN  VTAB VT%: HTAB HT%: PRINT "Yes <NO>";:NTRY$ = "NO"
  265. 21030  VTAB 19: HTAB 3: PRINT "Type Y for Yes or N for No,"
  266. 21040  HTAB 3: PRINT "or press ";: PRINT MT$;"H";RT$;" or ";MT$;"U";RT$;" to change."
  267. 21050  HTAB 3: PRINT "Then press RETURN. ";
  268. 21060  GOSUB 30000
  269. 21070  IF C$ < > CHR$(13)  THEN 21010
  270. 21080 FR% = 19:LR% = 21: GOSUB 30100
  271. 21090  RETURN 
  272. 22000  VTAB 19: HTAB 3: PRINT "Press ";MT$;"J";RT$;" or ";MT$;"K";RT$;" to select a field."
  273. 22010  VTAB 19: HTAB 3: PRINT "Press ";MT$;"J";RT$;" or ";MT$;"K";RT$;" to select a field."
  274. 22020  HTAB 3: PRINT "Then press RETURN. ";
  275. 22030  GOSUB 30000
  276. 22040  IF C$ =  CHR$(10)  THEN  GOSUB 23500:FIELD% = FIELD% +1: GOSUB 23000
  277. 22050  IF C$ =  CHR$(11)  THEN  GOSUB 23500:FIELD% = FIELD% -1: GOSUB 23000
  278. 22060  IF C$ > = "1"  AND C$ < =  STR$(LF%)  THEN  GOSUB 23500:FIELD% =  VAL(C$): GOSUB 23000
  279. 22070  IF C$ < > CHR$(13)  THEN 22030
  280. 22080 FR% = 19:LR% = 21: GOSUB 30100
  281. 22090  RETURN 
  282. 23000  IF FIELD% >LF%  THEN FIELD% = 1
  283. 23001  IF FIELD% <1  THEN FIELD% = LF%
  284. 23005 VT% =  PEEK(37) +1:HT% =  PEEK(36) +1
  285. 23010  VTAB FR%(1,FIELD%)
  286. 23011  HTAB FC%(1,FIELD%)
  287. 23012  INVERSE : PRINT FD$(1,FIELD%);
  288. 23013  NORMAL 
  289. 23020  VTAB VT%: HTAB HT%
  290. 23030  RETURN 
  291. 23500 VT% =  PEEK(37) +1:HT% =  PEEK(36) +1
  292. 23510  VTAB FR%(2,FIELD%): HTAB FC%(2,FIELD%): PRINT FD$(2,FIELD%);
  293. 23520  VTAB VT%: HTAB HT%
  294. 23530  RETURN 
  295. 24000  REM  
  296. 24010  REM   ***DISPLAY LIST***
  297. 24020  REM   
  298. 24029  GOSUB 17000
  299. 24030 T% = 12:L% = 4:B% = 16:R% = 37: GOSUB 30200
  300. 24031  VTAB 13: HTAB 4: PRINT "List 1st,2nd,Hold, or Both checks?": VTAB 14: HTAB 5: PRINT "(1/2/H/B)": VTAB 15: HTAB 5: PRINT " "; CHR$(8);: GET C1$
  301. 24034  IF C1$ = "1"  THEN CA$ = "THE 1st": GOTO 24039
  302. 24035  IF C1$ = "2"  THEN CA$ = "THE 2nd": GOTO 24039
  303. 24036  IF C1$ = "B"  THEN CA$ = "BOTH": GOTO 24039
  304. 24037  IF C1$ = "H"  THEN CA$ = "HOLD": GOTO 24039
  305. 24038  GOTO 24031
  306. 24039  HOME :RECRD = 0:A2 = 0:EN = 0:XC = 0
  307. 24040  HTAB 6: PRINT "BILLS DUE ON ";CA$;" CHECKS"
  308. 24050  VTAB 3: HTAB 2: PRINT "NO.";
  309. 24060  HTAB 6: PRINT "FIRM NAME";
  310. 24070  HTAB 18: PRINT "AMOUNT DUE";
  311. 24080  HTAB 30: PRINT "DATE DUE"
  312. 24090  HTAB 2: PRINT "---";: HTAB 6: PRINT "---------";: HTAB 18: PRINT "----------";: HTAB 30: PRINT "--------"
  313. 25000 RECRD = RECRD +1
  314. 25010  IF EN < >5  THEN  PRINT D$;"READ";FILE$;",R";RECRD
  315. 25030  IF EN < >5  THEN  INPUT "";FRM$,AMT$,DTE$,SE$
  316. 25040  PRINT D$
  317. 25041  IF OP = 1  THEN 25055
  318. 25045  IF XC = 14  THEN  PRINT : PRINT "PRESS ANY KEY TO CONTINUE": GET WQ$: HOME :XC = 0:RECRD = RECRD -1: GOTO 24040
  319. 25055  IF EN = 5  THEN  PRINT :A2 =  INT(A2 *100 +.5)/100:AMT$ =  STR$(A2): GOSUB 32000: HTAB 8: PRINT "TOTAL DUE=";AMT$: PRINT : PRINT : GOTO 31000
  320. 25060 C2 =  VAL(SE$)
  321. 25065  IF SE$ = "H"  THEN C2 = 3
  322. 25070 A1 =  VAL(AMT$)
  323. 25071  IF FRM$ = ""  THEN 25000
  324. 25075  IF C1$ = "B"  THEN 25085
  325. 25076  IF C1$ = "1"  THEN C1 = 1
  326. 25077  IF C1$ = "2"  THEN C1 = 2
  327. 25078  IF C1$ = "H"  THEN C1 = 3
  328. 25080  IF C2 < >C1  THEN 25000
  329. 25085 A2 = A2 +A1:XC = XC +1
  330. 25086  IF FRM$ = ""  THEN 25000
  331. 25090  HTAB 2: PRINT RECRD;
  332. 26000  HTAB 6: PRINT FRM$;
  333. 26010 AMT =  VAL(AMT$):W =  LEN( STR$( INT(AMT))): HTAB (21 -W +1): PRINT AMT$;
  334. 26020  GOSUB 13320: HTAB 30: PRINT MM$;"/";DD$;"/";YY
  335. 26030  GOTO 25000
  336. 30000  PRINT " "; CHR$(8);
  337. 30010  GET C$
  338. 30014 BX =  PEEK(49249)
  339. 30015  IF BX >127  THEN  GOSUB 49999
  340. 30020  RETURN 
  341. 30100  FOR ROW = FR% TO LR%
  342. 30110  VTAB ROW: HTAB 2: PRINT  SPC( 37);
  343. 30120  NEXT ROW
  344. 30130  RETURN 
  345. 30200  VTAB T%: HTAB L%
  346. 30210  PRINT MT$; LEFT$(TL$,R% -L% +1);
  347. 30220  FOR ROW = T% TO B%
  348. 30230  VTAB ROW: HTAB L% -1: PRINT "Z";
  349. 30240  HTAB R% +1: PRINT "_"
  350. 30250  NEXT ROW
  351. 30260  VTAB B%: HTAB L%: PRINT RT$; LEFT$(BL$,R% -L% +1);
  352. 30270  RETURN 
  353. 30300 VT% =  PEEK(37) +1
  354. 30310  PRINT MT$;"Z"; LEFT$(TBAR$,L%);"_";RT$;
  355. 30320  INVERSE : VTAB VT%: HTAB (40 - LEN(TITLES$))/2: PRINT TITLES$;: NORMAL 
  356. 30330  RETURN 
  357. 30989  REM  
  358. 30990  REM   ***HARD COPY ROUTINE***
  359. 30991  REM  
  360. 31000  IF OP = 1  THEN  PRINT D$;"PR#0":RECRD = 1:OP = 0: GOTO 1030
  361. 31005  VTAB 20: PRINT "DO YOU WANT A HARD COPY? (Y/N) ": GET YN$
  362. 31010  IF YN$ = "N"  OR YN$ =  CHR$(13)  THEN RECRD = 1: GOTO 1030
  363. 31020  IF YN$ < >"Y"  THEN 31000
  364. 31030  PRINT D$;"PR#1"
  365. 31035 OP = 1:EN = 0:A1 = 0:A2 = 0
  366. 31040 RECRD = 0: GOTO 24040
  367. 31990  REM   DOLAR/CENTS FORMATTER
  368. 32000  IF  LEN(AMT$) = 1  THEN AMT$ = AMT$ +".00": RETURN 
  369. 32010  FOR D = 1 TO  LEN(AMT$)
  370. 32020  IF  MID$ (AMT$,D,1) = "."  THEN 32050
  371. 32030  NEXT 
  372. 32040 AMT$ = AMT$ +".00": RETURN 
  373. 32050  IF D =  LEN(AMT$) -1  THEN AMT$ = AMT$ +"0": RETURN 
  374. 32060  IF D =  LEN(AMT$) -2  THEN  RETURN 
  375. 32070 AMT$ =  LEFT$(AMT$,D +2): RETURN 
  376. 39090  REM  
  377. 39095  REM    **SEARCH ROUTINE**
  378. 39096  REM  
  379. 40000  VTAB 13: HTAB 4: PRINT " TITLE OF FIRM? ";
  380. 40005  VTAB 14: HTAB 5: PRINT  SPC( 21)
  381. 40006 CL% = 0
  382. 40010 ML% = 11: VTAB 13: HTAB 20: GOSUB 20000
  383. 40020 RECRD = 0:EN = 0
  384. 40030 RECRD = RECRD +1
  385. 40035  IF EN = 5  THEN  VTAB 14: HTAB 10: INVERSE : PRINT BEEP$;"MATCH NOT FOUND!":NTRY$ = "1": FOR DL = 1 TO 500: NEXT DL: NORMAL : RETURN 
  386. 40036  VTAB 23
  387. 40040  IF EN < >5  THEN  PRINT D$;"READ";FILE$;",R";RECRD
  388. 40045  IF EN < >5  THEN  INPUT "";FRM$
  389. 40050  IF FRM$ = NTRY$  THEN NTRY$ =  STR$(RECRD): RETURN 
  390. 40055  IF NTRY$ = ""  THEN 40030
  391. 40060  IF  LEFT$(FRM$, LEN(NTRY$)) = NTRY$  THEN NTRY$ =  STR$(RECRD): RETURN 
  392. 40070  GOTO 40030